//通用模块封装

//1.消息提示模块封装
//用解构的方式获取用户传参,因为是从空对象'= {}'中解构,可以给参数赋值来设置默认值
const toast = ({ title = '数据加载中...', icon = 'none', duration = 2000, mask = true } = {}) => {
  wx.showToast({
    title,
    icon,
    duration,
    mask
  })
}

//2.模态对话框封装
const modal = (options = {}) => {
  //在方法内部需要通过Promise返回用户操作
  return new Promise((resolve) => {
    //默认参数
    const defaultOpt = {
      title: '提示',
      content: '您确定执行该操作吗？',
      confirmColor: '#f3514f'
    }

    //传入参数覆盖合并默认参数
    //同时，为了不影响默认参数，需将合并后的参数赋值给空对象
    const opts = Object.assign({}, defaultOpt, options)

    wx.showModal({
      //将合并后的参数通过展开运算符赋值给wx.showModal对象
      ...opts,
      complete({ comfirm, cancel }) {
        comfirm && resolve(true)
        cancel && resolve(false)
      }
    })
  })
}

//在wx全局对象上挂载方法，在执行一次当前文件才生效：import "./utils/extendApi"
wx.toast = toast
wx.modal = modal

export { toast,modal }